package school.valon.dto;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

public class UserDto implements Serializable {

	private static final long serialVersionUID = -9050424363053325153L;

	private Integer userId;

	private String email;

	private String firstName;

	private String gender;

	private String lastName;

	private String password;

	private String validationKey;

	private List<CourseOfferingStudentEnrolmentDto> courseOfferingStudentEnrolments;

	private List<PaymentDto> payments;

	private List<SurveyAnswerDto> surveyAnswers;

	private UserStatusDto userStatus;

	private UserTypeDto userType;

	public Integer getUserId() {
		return this.userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getFirstName() {
		return this.firstName;
	}

	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	public String getGender() {
		return this.gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public String getLastName() {
		return this.lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getValidationKey() {
		return this.validationKey;
	}

	public void setValidationKey(String validationKey) {
		this.validationKey = validationKey;
	}

	public List<CourseOfferingStudentEnrolmentDto> getCourseOfferingStudentEnrolments() {
		return this.courseOfferingStudentEnrolments;
	}

	public void setCourseOfferingStudentEnrolments(List<CourseOfferingStudentEnrolmentDto> courseOfferingStudentEnrolments) {
		this.courseOfferingStudentEnrolments = courseOfferingStudentEnrolments;
	}

	public List<PaymentDto> getPayments() {
		return this.payments;
	}

	public void setPayments(List<PaymentDto> payments) {
		this.payments = payments;
	}

	public List<SurveyAnswerDto> getSurveyAnswers() {
		return this.surveyAnswers;
	}

	public void setSurveyAnswers(List<SurveyAnswerDto> surveyAnswers) {
		this.surveyAnswers = surveyAnswers;
	}

	public UserStatusDto getUserStatus() {
		return this.userStatus;
	}

	public void setUserStatus(UserStatusDto userStatus) {
		this.userStatus = userStatus;
	}

	public UserTypeDto getUserType() {
		return this.userType;
	}

	public void setUserType(UserTypeDto userType) {
		this.userType = userType;
	}

	//---------- Child dto fields ------------

	private AddressDto address;

	private String emergencyContact;

	private Date birthDate;

	private String healthConcerns;

	private String healthInsuranceNumber;

	private ParentDto father;

	private ParentDto mother;

	public AddressDto getAddress() {
		return address;
	}

	public void setAddress(AddressDto address) {
		this.address = address;
	}

	public String getEmergencyContact() {
		return emergencyContact;
	}

	public void setEmergencyContact(String emergencyContact) {
		this.emergencyContact = emergencyContact;
	}

	public Date getBirthDate() {
		return birthDate;
	}

	public void setBirthDate(Date birthDate) {
		this.birthDate = birthDate;
	}

	public String getHealthConcerns() {
		return healthConcerns;
	}

	public void setHealthConcerns(String healthConcerns) {
		this.healthConcerns = healthConcerns;
	}

	public String getHealthInsuranceNumber() {
		return healthInsuranceNumber;
	}

	public void setHealthInsuranceNumber(String healthInsuranceNumber) {
		this.healthInsuranceNumber = healthInsuranceNumber;
	}

	public ParentDto getFather() {
		return father;
	}

	public void setFather(ParentDto father) {
		this.father = father;
	}

	public ParentDto getMother() {
		return mother;
	}

	public void setMother(ParentDto mother) {
		this.mother = mother;
	}
}